# 多继承: 子类可以继承多个父类的属性和方法

class Father(object):
    def money(self):
        print("Father has money - 1000w")

class Mother(object):
    def apperance(self):
        print("Pretty face")
    def money(self):
        print("Mother has money - 100w")

class Child(Father, Mother):
    pass

child = Child()
child.money()
child.apperance()

# 继承的顺序: Python会按照从左到右的顺序查找方法和属性
# 多个父类中有同名方法时，Python会按照继承顺序调用第一个找到的方法 Father 优先于 Mother 类
# 内置属性 __mro__: 用于查看类的继承顺序
print(Child.__mro__)  # 查看 Child 类的继承顺序 # (<class '__main__.Child'>, <class '__main__.Father'>, <class '__main__.Mother'>, <class 'object'>)
# 如果调用的方法在自己的类中存在,则直接调用自己的方法；如果不存在，则按照继承顺序查找父类的方法。